package flychess.util;

import flychess.entity.PlayerType;
import java.util.Random;
import java.util.Scanner;

public class UserInput {
    public static Scanner input = new Scanner(System.in);

    /**
     * 从键盘获取start到end之间的数字，如果输入的是其他的字符或字符串，会重新输入，防止出现输入不合法的问题
     * @param start 起始数字
     * @param end 结束数字
     * @return 返回输入的合法数字
     */
    public static int getInputNum(int start, int end, PlayerType playerType) {
        int inputNum = -1;
        boolean isRobot = playerType == PlayerType.ROBOT;
        Random rand = new Random();
        while (true) {
            if (!isRobot) {
                try {
                    inputNum = input.nextInt();
                } catch (Exception e) { // 捕获运行时异常
                    System.out.println("请输入正整数！");
                    input.next();
                    continue;
                }
            } else {
                inputNum = rand.nextInt(end - start + 1) + start;
                System.out.println("电脑玩家的输入是：" + inputNum);
            }
            if (inputNum >= start && inputNum <= end) {
                break;
            }
            else {
                System.out.printf("您输入的内容不合法，请输入%d-%d之间的数字！\n", start, end);
            }
        }
        return inputNum;
    }
}
